import axios from 'axios'
import { ElMessage } from 'element-plus'
import router from '../router';
/* 请求配置 */
const service = axios.create({
    baseURL: import.meta.env.VITE_BASE_URL,
    timeout: 5000,
    headers: {
        'Content-Type': 'application/json; charset=UTF-8'
    },
    validateStatus: function (status) {
        if (status === 401) {
            ElMessage.error({ message: '验证失败', grouping: true })
            window.sessionStorage.clear()
            router.push('/login')
        }
        // if (status === 403) {
        //     ElMessage.error({ message: '暂无权限', grouping: true })
        // }
        if (status === 500) {
            ElMessage.error({ message: '系统错误', grouping: true })
        }
        return status >= 200 && status < 300
    }
})


// 添加请求拦截器
service.interceptors.request.use(
    function (config) {
        // 发送请求之前做什么
        // 请求头增加token
        config.headers.Authorization = sessionStorage.getItem('token')
        return config;
    },
    function (error) {
        // 对请求错误做些什么
        ElMessage.error({ message: '请求超时!' })
        return Promise.reject(error)
    }
);

// 添加响应拦截器
service.interceptors.response.use(response => {
    const res = response.data
    if (res.code === 401) {
        router.push('/login')
    } else if (res.code !== 200) {
        ElMessage.error(res.msg || { message: '系统错误', grouping: true })
        return Promise.reject(new Error('Error'))
    } else {
        return res
    }
}, error => {
    return Promise.reject(error)
})

export default service;